package com.shuai.utils;

import java.util.Map;

public class PageUtil {
    public static Map<String, Object> page(Map<String, Object> params) {
        // 获取分页参数并转换为整数
        Integer pageIndex = getIntValue(params, "pageIndex", 1);
        Integer pageSize = getIntValue(params, "pageSize", 10);

        // 计算偏移量
        params.put("pageIndex", (pageIndex - 1) * pageSize);
        params.put("pageSize", pageSize);

        // 此时 map 里面的类型是 <String,Integer>
        return params;
    }

    private static Integer getIntValue(Map<String, Object> params, String key, int defaultValue) {
        Object value = params.get(key);
        if (value == null) {
            // 如果前端传入的分页参数为null, 则使用默认值
            return defaultValue;
        }
        if (value instanceof Integer) {
            return (Integer) value;
        }
        try {
            // String 转 Integer
            return Integer.parseInt(value.toString());
        } catch (NumberFormatException e) {
            return defaultValue;
        }
    }
}